#ifndef wm_config_h
#define wm_config_h
/*
 * Sylvain BERTRAND <digital.ragnarok@gmail.com>
 * code protected by GNU GPL v3
 */
struct wm_app_settings {
	GPatternSpec *class;
	GPatternSpec *name;
	GPatternSpec *title;
	enum wm_client_type type;
	struct wm_gravity_point position;
	gboolean pos_given;
	gboolean pos_force;
	guint desktop;
	gint focus;
	gint monitor;
	gint skip_pager;
	gint skip_taskbar;
	gint max_horz;
	gint max_vert;
	gint fullscreen;
	gint layer;
};
gboolean config_focus_new;
gboolean config_focus_follow;
guint config_focus_delay;
gboolean config_focus_raise;
gboolean config_focus_last;
gboolean config_focus_under_mouse;
gboolean config_unfocus_leave;
enum wm_place_policy config_place_policy;
gboolean config_place_center;
enum wm_place_monitor config_place_monitor;
guint config_primary_monitor_index;
enum wm_place_monitor config_primary_monitor;
gboolean config_resize_redraw;
gchar *config_theme;
guint config_desktops_num;
guint config_screen_firstdesk;
guint config_keyboard_reset_keycode;
guint config_keyboard_reset_state;
gint config_mouse_threshold;
gint config_mouse_dclicktime;
gint config_mouse_screenedgetime;
gboolean config_mouse_screenedgewarp;
gint config_resist_win;
gint config_resist_edge;
GSList *config_per_app_settings;
void config_startup(struct t_xml_inst *i);
void config_shutdown(void);
struct wm_app_settings *config_create_app_settings(void);
void config_app_settings_copy_non_defaults(const struct wm_app_settings *src, struct wm_app_settings *dest);
void config_parse_gravity_coord(xmlNodePtr node, struct wm_gravity_coord *c);
void config_parse_relative_number(gchar *s, gint *num, gint *denom);
#endif
